#include <signal.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
sig_atomic_t sigusr1_count = 0;
void handler (int signal_number)
{
	++sigusr1_count;
}
int main ()
{
	struct sigaction sa;
	memset (&sa, 0, sizeof (sa));
	sa.sa_handler = &handler;
	sigaction (SIGUSR1, &sa, NULL);
	/* Do some lengthy stuff here. */
	/* ... */
	printf ("SIGUSR1 was raised %d times\n", sigusr1_count);
	return 0;
}
